//
//  SolidMaterial.h
//  Ray Tracer
//
//  Created by Kaila, Ashish on 3/23/13.
//  Copyright (c) 2013 Kaila, Ashish. All rights reserved.
//

#ifndef __Ray_Tracer__SolidMaterial__
#define __Ray_Tracer__SolidMaterial__

#include "Material.h"
#include "../Utils/util.h"

class SolidMaterial : public Material
{
public:
    SolidMaterial(Colour ambient,
                  Colour diffuse,
                  Colour specular,
                  double specularExp,
                  double diffuseReflectivityFactor,
                  double specularReflectivityFactor,
                  double refractiveIndex);
    
    virtual Colour getColour(ColourType type, const Intersection& intersection, bool inShadow) const;
    
private:
    
    // Ambient components for Phong shading.
	Colour _ambient;
	
    // Diffuse components for Phong shading.
	Colour _diffuse;
	
    // Specular components for Phong shading.
    Colour _specular;
};

#endif /* defined(__Ray_Tracer__SolidMaterial__) */
